﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity.ModelConfiguration;
using CapaDeDominio;

namespace CapaDeDatos.EF.ORM
{
    public class SalaMapping : EntityTypeConfiguration<Sala>
    {
        public SalaMapping()
            : base()
        {
            ToTable("sala");
            HasKey(s => s.Codigo);
            Property(s => s.Codigo)
                .HasColumnName("codigo")
                .IsRequired()
                .HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.None);
            Property(s => s.Nombre)
                .HasColumnName("nombre")
                .IsRequired();
            Property(s => s.Caracteristicas)
                .HasColumnName("caracteristicas")
                .IsRequired();
            Property(s => s.Capacidad)
                .HasColumnName("capacidad")
                .IsRequired();
            HasRequired(d => d.Local)
                .WithMany()
                .Map(d => d.MapKey("local"));
            Property(s => s.Comentarios)
                .HasColumnName("comentarios");
            Property(s => s.alquiler)
                .HasColumnName("alquiler");
            HasMany<Instrumento>(s => s.Instrumentos)
            .WithMany(s => s.Salas)
            .Map(m =>
            {
                m.ToTable("detalle_sala_instrumento");
                m.MapLeftKey("codigo_sala");
                m.MapRightKey("codigo_instrumento");
            });
            HasMany<Servicio>(s => s.Servicios)
           .WithMany(i => i.Salas)
           .Map(m =>
           {
               m.ToTable("detalle_sala_servicio");
               m.MapLeftKey("codigo_sala");
               m.MapRightKey("codigo_servicio");
           });
        }
    }
}